Refactoring Catalog for Legacy software using C and Aspect Oriented Language
نویسندگان
چکیده
This paper explores the combination of AOP and refactoring, two techniques that deals with the problems of permanent evolution of software. AOP has evolved to deal with a large legacy of object-oriented (OO) code. Most of the work has been done in the area of refactoring the object oriented code but little with the procedural code and that too with aspect orientation. But the AO concept when applied to the procedural source code can be used to solve the existence of potential problems in the code thus improving the underlying design. The poorly designed procedural code when refactored with aspect orientation yields a better code. This paper documents a collection of novel refactorings enabling the extraction of crosscutting concerns from the procedural legacy source code. Therefore we establish a systematic approach for refactoring and then propose a refactoring catalog to deal with the procedural code that establishes a systematic approach to refactor the procedural code. To this end, we first investigate the impact of existing object-oriented refactorings such as those proposed by Fowler on procedural code. Then we propose some novel refactorings that are unique to the procedural code and the ones using the aspect concept are termed as aspect-oriented refactorings. We use AspeCt oriented C, an AOP language for C to demonstrate our approach.
منابع مشابه
Introduction of Aspect Oriented Techniques for refactoring legacy software
Refactoring has become a well-known technique for improving the code in a way that preserves behavior. The application of refactorings during development process of an object oriented or procedure oriented software improves the design and therefore the quality of software. During the evolution of software it is a requirement to refactor them in order to make it more compatible and flexible with...
متن کاملIntroduction of Aspect Oriented Techniques for Refactoring Legacy Software
Refactoring has become a well-known technique for improving the code in a way that preserves behavior. The application of refactorings during development process of an object oriented or procedure oriented software improves the design and therefore the quality of software. During the evolution of software it is a requirement to refactor them in order to make it more compatible and flexible with...
متن کاملA Systematic Aspect-Oriented Refactoring and Testing Strategy, and its Application to JHotDraw
Aspect oriented programming aims at achieving better modularization for a system’s crosscutting concerns in order to improve its key quality attributes, such as evolvability and reusability. Consequently, the adoption of aspect-oriented techniques in existing (legacy) software systems is of interest to remediate software aging. The refactoring of existing systems to employ aspectorientation wil...
متن کاملTowards Language-Independent Weaving Using Grammar Adapters
Current practices to support software evolution and restructuring, such as aspect-oriented software development and refactoring, have offered new capabilities for addressing the challenges of adapting software. Aspect weavers and refactoring engines enable the evolution of software in a modular and extensible manner, thereby improving the structure of the program and rendering new behavior. How...
متن کاملPlanning an Automated Aspect Mining Tool
Software systems are growing in size and complexity. Increased complexity often leads to decresed mainainability and bad modularity, and re-engineering tasks is often performed in order to increase the key qualities of the system. With the incentive of a growing attention to aspect-oriented programming, the efforts to devise new techniques for refactoring legacy system into an aspect-oriented d...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2011